package com.bos.service;

import com.bos.data.model.*;
import com.bos.common.PageData;
import org.apache.ibatis.annotations.Select;

import java.util.List;


public interface ProjectService {
    //查询出Project表中所有的数据（根据负责人的名字）
    public List<BosProjectModel> findProjects(String name);

    //1.查询出所有数据
    public List<BosProjectModel> findProject();

    //2.将数据插入Project表中
    public int insertProject(BosProjectModel pro);

    //3.如果没有输入结束时间的话将数据插入Project表中
    public int insertProject2(BosProjectModel pro);

    //4.根据id修改有完成时间的数据
    public int updateById(BosProjectModel pro);

    //5.根据id修改没有完成时间的数据
    public int updateById2(BosProjectModel pro);

    //6.根据id修改没有开始时间也没有结束时间的数据
    public int updateById3(BosProjectModel pro);

    //7.根据id查询出表中的数据
    public BosProjectModel findProjectById(int id);

    //10.根据序号，工作类型，项目名称，开始时间，完成时间，项目进度，项目情况，负责人进行查询出结果
    public List<BosProjectModel> selectByWhere(String where, String[] shuigou, String[] wtype, String[] pteam, String[] pleader);

    //11.根据id删除所选的数据
    public int deleteById(int id);

    //12.查询出用户表中的数据
    public List<BosUserModel> findUsers();

    //13根据传过来的数据去修改bos_project表中的leader
    public int updateLeader(BosProjectModel project);

    //14.根据项目表的bid查询出客户表中的信息
    public BosCustomerModel findCustomerByCname(String cname);

    //15.根据typeName为项目进度查询出数据
    public List<BosParamModel> findBos_params(String typeName);

    //更新项目
    void updProject(BosProjectModel bosProjectModel);

    //添加项目
    int addProject(BosProjectModel bosProjectModel);

    //项目列表界面的高级查询
    PageData findWithTerm(String where, List<String> shuigou, List<String> wtype, List<String> pteam, List<String> pleader, int pageSize, int pageIndex);

    //修改项目时往项目历史表里新增一条数据
    int addProjectHistory(TProjectHistoryModel model);

    //查出所有项目历史数据
    List<TProjectHistoryModel> getAllProjectHistoryByWName(String name);

    //根据项目名查出项目
    BosProjectModel findByName(String name);
    //16.查询出去除重复数据的项目负责人
    public List<BosProjectModel> findLeaders();

    //通过id复制一个项目
    String copyProject(int id);

    //通过id从日志表里拿数据
    LogsModel findLogById(int id);
}
